"""
1. 导入模块socket
2. 创建socket套接字
3. 绑定IP&端口（可选）
4. 发送数据
5. 关闭套接字
"""
# 1. 导入模块socket
import socket
import utils

# 2. 创建socket套接字
# 参数1：地址簇，地址类型family: AddressFamily | int 
#       AF_INET     IPv4
#       AF_INET6    IPv6
# 参数2：协议类型 type: SocketKind | int
#       SOCK_STREAM     TCP协议 （默认协议）
#       SOCK_DGRAM      UDP协议
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

#3. 绑定IP&端口（可选）
udp_socket.bind(('', 3333))# 通常每个套接字地址(协议/网络地址/端口)只允许使用一次
#这里的" "空字符串表示所有的ip
#网络调试工具里的空字符串代表这本机地址127.0.0.1或者192.168.40.81
#4.接收数据
bytes_arr,address = udp_socket.recvfrom(1024)
msg = utils.decode_data(bytes_arr)
print(f"接收到来自{address}的消息：{msg}")

#5.关闭套接字
udp_socket.close()